/*
  将下面异步代码使用 Promise 的方法改进
  尽量用看上去像同步代码的方式
  setTimeout(function () {
    var a = 'hello'
    setTimeout(function () {
      var b = 'lagou'
      setTimeout(function () {
        var c = 'I ♥ U'
        console.log(a + b +c)
      }, 10)
    }, 10)
  }, 10)
*/

function getA () {
  return new Promise((reslove) => {
    var a = 'hello'
    setTimeout(() => {
      reslove({ a })
    }, 10);
  })
}

function getB (result) {
  return new Promise((reslove) => {
    result.b = 'lagou'
    setTimeout(() => {
      reslove(result)
    }, 10);
  })
}

function getC (result) {
  return new Promise((reslove) => {
    result.c = 'I ♥ U'
    setTimeout(() => {
      reslove(result)
    }, 10);
  })
}

getA().then(getB).then(getC).then(result => {
  console.log(result.a + result.b + result.c)
})